import aiohttp
from .def_xpath import xpath

# asy_get 函数：第一个参数为 aiohttp.ClientSession 对象，第二个参数为 URL 路径。
# 第三个参数为 headers 字典，第四个参数为 xpath 字符串，第五个参数为超时时间。
async def asy_get(session, url, headers=None, xpath_str=None, timeout=10):
    try:
        async with session.get(url, headers=headers or {}, timeout=timeout) as response:
            if response.status != 200:
                print(f"[警告] 状态码 {response.status}，URL：{url}")
                return None
            html = await response.text()
            if not html.strip():
                print(f"[警告] 空页面返回，URL：{url}")
                return None
            return xpath(html, xpath_str) if xpath_str else html
    except Exception as e:
        print(f"[错误] 请求异常 URL：{url}，错误：{e}")
        return None